﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


//Denne klasse er lavet af gruppe 3 til projektet omkring BF-OKS
//denne klasse samler alle vores produktionslinier i en superliste og fordeler dem ud på de tavler, hvor de tilhører



namespace Model
{
    [Serializable]
    
    // AØ
    public class TavleCollection
    {
        private List<Object> SuperListe;       // aggregering af nul til mange ordrelinier
        private List<ProduktionsLinie> OpskaeringsListe;
        private List<ProduktionsLinie> HakkeListe;
        private List<ProduktionsLinie> FryseListe;
        private List<ProduktionsLinie> PakkeListe;

        // Konstruktør
        public TavleCollection()
        {
            SuperListe = new List<Object>();    // pga aggregering skal ordreliste skabes
            OpskaeringsListe = new List<ProduktionsLinie>();    // pga aggregering skal ordreliste skabes
            HakkeListe = new List<ProduktionsLinie>();    // pga aggregering skal ordreliste skabes
            FryseListe = new List<ProduktionsLinie>();    // pga aggregering skal ordreliste skabes
            PakkeListe = new List<ProduktionsLinie>();    // pga aggregering skal ordreliste skabes
        }

        public Object TilfoejTilSuperListe(Object Salgsordrelinietiltavle)
        {
            SuperListe.Add(Salgsordrelinietiltavle);
            return Salgsordrelinietiltavle;
        }

        // Opskæring
        public ProduktionsLinie TilfoejTilOpskaeringsListe(ProduktionsLinie salgsordrelinie)
        {
            OpskaeringsListe.Add(salgsordrelinie);
            return salgsordrelinie;
        }

        // Hakke
        public ProduktionsLinie TilfoejTilHakkeListe(ProduktionsLinie salgsordrelinie)
        {
            HakkeListe.Add(salgsordrelinie);
            return salgsordrelinie;
        }

        // Frys
        public ProduktionsLinie TilfoejTilFryseListe(ProduktionsLinie salgsordrelinie)
        {
            FryseListe.Add(salgsordrelinie);
            return salgsordrelinie;
        }

        // Pakke
        public ProduktionsLinie TilfoejTilPakkeListe(ProduktionsLinie salgsordrelinie)
        {
            PakkeListe.Add(salgsordrelinie);
            return salgsordrelinie;
        }

        // HentSuperListe
        public List<Object> HentSuperListe()
        {
            return SuperListe;
        }


        // HentProduktionsListe
        public List<ProduktionsLinie> HentProduktionsListe(int tavleId)
        {
            if(tavleId == 1)
            {
                return OpskaeringsListe;
            }
            if (tavleId == 2)
            {
                return HakkeListe;
            }
            if (tavleId == 3)
            {
                return FryseListe;
            }
            if (tavleId == 4)
            {
                return PakkeListe;
            }
            else
            {
                return null;
            }

        }

        public int ANTAL(int tavleId)
        {
            int antal = 0;
            if (tavleId == 1)
            {
                antal = (int)OpskaeringsListe.Count;
            }
            if (tavleId == 2)
            {
                int test = SuperListe.Count();
                antal = (int)HakkeListe.Count;
            }
            if (tavleId == 3)
            {
                antal = (int)FryseListe.Count;
            }
            if (tavleId == 4)
            {
                antal = (int)PakkeListe.Count;
            }
            return antal;
        }

        public ProduktionsLinie OpretProduktionsLinie(int OrdrelinieID, DateTime dato, string varebet, double kilo, String Betegnelse, String Location)
        {
            return new ProduktionsLinie(OrdrelinieID, dato, varebet, kilo, Betegnelse, Location);
        }

        //MADS clear liste
        // HentProduktionsListe
        public void ClearListe(int tavleId)
        {
            SuperListe.Clear();
            if (tavleId == 1)
            {
                OpskaeringsListe.Clear();
            }
            if (tavleId == 2)
            {
                HakkeListe.Clear();
            }
            if (tavleId == 3)
            {
                FryseListe.Clear();
            }
            if (tavleId == 4)
            {
                PakkeListe.Clear();
            }
        }

    }
}
